﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using KacincisinProject.Data;
using KacincisinProject.ViewModels;

namespace KacincisinProject.Controllers
{
    public class SinavTipiController : Controller
    {
        private KacincisinDBEntities database = new KacincisinDBEntities();
        //
        // GET: /SinavTipi/

        public ActionResult SinavTipiListele()
        {
            List<SinavTipleri> sinav = database.SinavTipleri.ToList();
            return View(sinav);
        }

        public ActionResult SinavTipiOlustur()
        {

            return View();

        }
          [HttpPost]
        public ActionResult SinavTipiOlustur(SinavTipiViewModel model)
        {
           
            if (ModelState.IsValid)
            {
                
                SinavTipleri yenisinavtipi = new SinavTipleri();             
                yenisinavtipi.SinavTipi = model.SinavTipi;

                database.SinavTipleri.Add(yenisinavtipi);
                database.SaveChanges();

              
                return RedirectToAction("SinavTipiListele");
            }
            return View(model);
        }
          public ActionResult SinavTipiGuncelle (int id)
          {
              SinavTipleri sinavtipi= database.SinavTipleri.Find(id);

              SinavTipiViewModel model = new SinavTipiViewModel();


              model.SinavTipId= sinavtipi.SinavTipId;
              model.SinavTipi = sinavtipi.SinavTipi;

              return View(model);
          }
          [HttpPost]
          public ActionResult SinavTipiGuncelle(SinavTipiViewModel model)
          {
              if (ModelState.IsValid)
              {
                  SinavTipleri yenisinavtipi = new SinavTipleri();

                  yenisinavtipi.SinavTipId = model.SinavTipId;
                  yenisinavtipi.SinavTipi= model.SinavTipi;
               

      
                  database.Entry(yenisinavtipi).State = EntityState.Modified;
                  database.SaveChanges();

                  return RedirectToAction("SinavTipiListele");
              }

              return View(model);

          }
          public ActionResult SinavTipiSil(int id)
          {
              SinavTipleri sinavtipi = database.SinavTipleri.Find(id);

              //Eğer listenin içinde herhangi bir eleman varsa Any() true döndürür.
              if (sinavtipi.Sinavlar.Any())
              {
                  return RedirectToAction("SinavTipiListele");
              }

              SinavTipiViewModel model = new SinavTipiViewModel();


              model.SinavTipId = sinavtipi.SinavTipId;
              model.SinavTipi = sinavtipi.SinavTipi;

              return View(model);
          }

          [HttpPost]
          public ActionResult SinavTipiSil(SinavTipiViewModel model)
          {
              if (ModelState.IsValid)
              {
                  SinavTipleri yenisinavtipi =new SinavTipleri();

                  yenisinavtipi.SinavTipId = model.SinavTipId;
                  yenisinavtipi.SinavTipi = model.SinavTipi;
                
                  database.Entry(yenisinavtipi).State = EntityState.Deleted;
                  database.SaveChanges();

                  return RedirectToAction("SinavTipiListele");
              }
              return View(model);
          }
        }

    }
